gusucode.com > MATLAB与控制系统仿真实践 源代码 > MATLAB与控制系统仿真实践 源代码/第十三章/eg13_10.m

    %原系统根轨迹
num=1;den=[1 0 0];
sys=tf(num,den);
rlocus(sys)


%求得满足条件的zeta,进而求主导极点的期望位置
zeta=0:0.001:0.99;                                                                                          %给定不同zeta值
sigma=exp(-zeta*pi./sqrt(1-zeta.^2))*100;                                                      %求取对应zeta值的sigma值
plot(zeta,sigma)                                                                                              %绘制zeta值和sigma值关系曲线
xlabel('\zeta');
ylabel('\sigma');
title('\sigma%=e^{-\zeta*\pi/sqrt(1-\zeta^2)}*100%','fontsize',16)
grid

%设计校正网络
x=-1:-0.01:-20;
angs=90-2*angle(-1+2*j-0)*180/pi-angle(-1+2*j-x)*180/pi;
p=spline(angs,x,-180)

%观察校正后系统特性
G=tf([1 1],[1 3.67 0  0]);                                                                                      %系统开环传递函数
rlocus(G);                                                                                                            %系统根轨迹
sgrid(1/sqrt(5),[])
k=8.34;
Gk=tf(k*[1 1],[1 3.67 0  0]);                                                                        %系统开环传递函数
G=feedback(Gk,1);                                                                                       %闭环系统传递函数
step(G)